package com.cyys.modules.system.dao.org;

import com.cyys.common.mapper.CyysBaseMapper;
import com.cyys.modules.system.model.org.Org;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface OrgDao extends CyysBaseMapper<Org> {

	/**
	 * 根据父类查询数据
	 * 
	 * @param parentId
	 * @return
	 * @
	 */
	List<Org> getByParentId(@Param(value = "parentId") String parentId);

	/**
	 * 根据父类查询子的数量
	 * 
	 * @param parentId
	 * @return
	 * @
	 */
	int chlidNum(@Param(value = "parentId") String parentId);

	/**
	 * 根据名称查询机构
	 * @param orgName
	 * @return
	 * @
	 */
    Org getByName(String orgName);

	/**
	 * 根据ID数组查询数据，配合数据删除进行使用
	 *
	 * @param ids
	 * @return
	 * @
	 */
	List<Org> listByIds(@Param(value = "ids") String[] ids);


	/**
	 * 生成父节点列表（返回0：失败，1：成功）
	 * @return
	 * @
	 */
	int createOrgBranch();

	/**
	 * 获取机构下所有分支机构
	 * @param orgId
	 * @return
	 */
	List<Org> getChildByOrgId(@Param("orgId")String orgId);

	/**
	 * 获取机构的所有父级机构
	 * @param orgId
	 * @return
	 */
	List<Org> getParentsByOrgId(@Param("orgId")String orgId);

	/**
	 * 获取机构的所有父级机构ID
	 * @param orgId
	 * @return
	 */
	List<String> getParentIdsByOrgId(@Param("orgId")String orgId);

}
